#!/usr/bin/env python
#-------------------------------python----------------------trasfor.py--#
#                                                                       #
#                Trasformazioni nel piano cartesiano                    #
#                                                                       #
#--Daniele Zambelli----------------------------------------------2003---#

from pycart import Plane

def trasla(vertici, t):
  def traslapunto(v): return (v[0]+t[0], v[1]+t[1])
  return map(traslapunto, vertici)

def simmo(vertici):
  def simmopunto(v): return (-v[0], -v[1])
  return map(simmopunto, vertici)

def simmx(vertici):
  def simmxpunto(v): return (v[0], -v[1])
  return map(simmxpunto, vertici)

def simmy(vertici):
  def simmypunto(v): return (-v[0], v[1])
  return map(simmypunto, vertici)

def omotetia(vertici, k):
  def omotetiapunto(v): return (v[0]*k, v[1]*k)
  return map(omotetiapunto, vertici)

p=Plane("Trasformazioni nel piano cartesiano")
p.axes()
p.setwidth(2)
p1=[(20, 20), (80, 20), (80, 60), (40, 60)]
p2=trasla(p1, (-30, 50))
p3=simmo(p1)
p4=simmx(p1)
p5=simmy(p2)
p6=omotetia(p1, 0.5)
p7=omotetia(p1, -3.2)
p.drawpoly(p1)
p.setcolor('red')
p.drawpoly(p2)
p.setcolor('green')
p.drawpoly(p3)
p.setcolor('pink')
p.drawpoly(p4)
p.setcolor('blue')
p.drawpoly(p5)
p.setcolor('brown')
p.drawpoly(p6)
p.drawpoly(p7)
p.mainloop()
